home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Cube 4: Multimedia Applications
/
MacCube Volume 4: Multimedia Applications.iso
/
Graphics
/
POV Ray
/
POVRAY II (68040)
/
• Read Me + User Guide •
next >
Wrap
Text File
|
1994-03-30
|
8KB
|
218 lines
___________________________________________________________________
Pov-Ray (68040)
Trigo + loops
Hi !
First of all some tedious informations:
1) This POV version is designed specifically for Macintosh
---------
2) Besides, it must be equipped with a 68040 --> NOT a 68040 LC.
------
It will not run on any other platform including 68000, 68020, 68030,
PPC, SGI, SUN, Amiga, PC, Commodore and so on...
3) Please, read the POVLEGAL file included in this package.
4) This is an unofficial version not supported by the POV-Ray team.
Any questions concerning this versions must be addressed directly to me
Do not bother the POV-Ray team with any problem you may encounter
with this version.
--> You can reach me at the following internet address:
nguex@ulys.unil.ch
5) Where to find the official POV-Ray files ?
You will find the informations in the file «Where to find official POV»
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
* *
* • WHAT'S NEW, and how to use it • *
* --------------------------- *
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
1) SPEED
=========
If you are lucky and posess a 68040 with FPU, you will be able to render
your scenes faster than with the official version.
The speed boost vary widely from scenes to scenes (3.2% up to 42.3%; average 11.8%)
You will find the timing results for all the scenes included in the official
POV-Ray 2.0 package in the file «Timings».
The major boost are obtained for scenes using Bump Mapping, Spot lights and so on...
Warning:
Although I have sucessfully rendered all the scenes provided with the official
version 2.0 package (ie: all files of Level1, Level2, Level3, Math and Demo)
Some bugs may remain. If you experience a crash during a scene rendering,
first of all I am not responsible for any damage or losses of any kind caused by
the use or misuse of the package; secondly, you may want to send me the scene that
caused a so nasty result so that I can track and kick the bug out of the code.
--------------------------------------------------------------------------
2) NEW FEATURES
================
I have added some new features to the parser.
It is now possible to use trigonometric functions
as well as loops to describe more easily the scenes.
You will find two samples using these new features in this package:
Columns.POV and Helicoidal_Scale.POV
You can use them, modify them and include them freely in your scenes,
BUT : WARNING !
• If you decide to share or post a scene that need any of the new features
• to be rendered, you MUST indicate clearly that this scene was designed
• specifically for my version and that it will request it to be rendered.
• Specify also where users can find my version, and the type of computer
• needed (Macintosh with 68040).
• This is only to insure that regular users will not be confused with some
• scenes that they are unable to render.
The next official version of POV-Ray is likely to include such features
(i.e trigo and loops) but as it is not guarantee that it will be my features,
the syntax may vary slightly. Anyway it should not be tricky to
translate (if needed) your scenes to fit the future official version.
If 68020 and 68030 users cannot wait for the next Pov-Ray release to
use maths and loops, I may post an "almost standard speed" version for
those users.
A last word before the new features description:
If you decribe a scene that use or do not use my new features or samples...
I am always pleased to see what people can do with POV.
It is not a request, just a suggestion...
-----------------------------------
• Syntax of the new maths instructions
-----------------------------------
abs(), sin(), cos(), tan(), asin(), acos(), atan(), srq(), sqrt()
abs(x) insure that a number will be positive. abs(-x) gives x
sin(a) a in degrees sin(90) gives 1
asin(x) result in degrees asin(1) gives 90
cos(a) a in degrees cos(90) gives 0
acos(x) result in degrees acos(0) gives 90
tan(a) a in degrees tan(45) gives 1
atan(x) result in degrees atan(1) gives 45
sqr(x) stands for square. It will give the same result as x*x.
sqrt(x) stands for squared root. sqrt(9) will give 3.
Warning: you must place a + or - sign in front of
abs(), sin(), cos(), tan(), asin(), acos(), atan(), srq(), sqrt()
when used as first member of a #declare.
#declare angle = atan(x) WRONG
#declare angle = +atan(x) RIGHT
#declare angle = -atan(x) RIGHT
Error messages
--------------
cannot calculate tan(90) !
negative sqrt !
division by zero !
-----------------------------------
• Syntax of the other new instructions
-----------------------------------
RANGE const_name min, max
Constraint the value of «const_name» between «min» and «max».
Example
-------
#declare Value = 10
RANGE Value 5,15 nothing happens
RANGE Value 5,7 Value is now 7.
Usage
-----
this function can be useful if you make a movie where
several objects are moving along their own path, and
if you want some objects to stop moving before others.
Error messages
--------------
RANGE max value must be greater than min value
-----------------------------------------------------------------------------
FOR var_name < from, to, step >
ENDFOR
Allows to define complex objects more easily using loops
(for example to carve an object at a repeated distance,
align trees on a path and so on.)
You can use a negative «step», but remember to set a greater value to «from» than to «to»
Examples
--------
See files «Columns.POV» and «Helicoidal_Scale.POV»
which are included in this package.
Error messages
--------------
#declare of a floating constant is not allowed within a loop.
ENDFOR is missing…
ENDFOR found but FOR is missing…
loop var name is missing or already declared…
loop step value must be <> 0 !
FOR imbrication is not allowed…
I never had to use loop imbrication to describe a scene,
anyway, if this feature is really lacking, let me know.
Meanwhile, the solution is to define your object in two separate loops.
For example:
FOR i <-8, 8, 8>
FOR j <-8, 8, 8>
object { sphere { <j , i, 0> 4 } texture { TheTexture } }
ENDFOR
ENDFOR
should be written something like that:
#declare Three_Spheres =
union {
FOR i <-8, 8, 8>
object { sphere { <i , 0, 0> 4 } }
ENDFOR
texture { TheTexture }
}
FOR i <-8, 8, 8>
object { Three_Spheres translate <0 , i, 0> }
ENDFOR
-------------------------------------------------------------
DISCLAIMER
This software is provided as is without any guarantees or warranty.
Although I have attempted to find and correct any bugs in the
package, I am not responsible for any damage or losses of any kind
caused by the use or misuse of the package.
I hope you will enjoy this package anyway !
Nicolas Guex
INTERNET: nguex@ulys.unil.ch
--------------------------------------------------------------